<?php

namespace App\Constant;

class ResponseCode
{
    //1xx 相关信息
    //2xx 操作成功
    //3xx 重定向
    //4xx 客户端错误
    //5xx 服务器错误
    /**
     * 错误信息提示词
     */
    const OK = 200;
    const No_Content = 204;
    const Partial_Content = 206;

    const Moved_Permanently = 301;
    const Found = 302;
    const See_Other = 303;
    const Not_Modified = 304;
    const Temporary_Redirect = 307;

    const Bad_Request = 400;
    const Unauthorized = 401;
    const Forbidden = 403;
    const Not_Found = 404;

    const Internal_Server_Error = 500;
    const Service_Unavailable = 503;

    const MESSAGES = array(
        self::OK => 'OK',//同时返回资源数据
        self::No_Content => '操作成功',//没有任何资源可以返回给客户端，一般在只需要从客户端往服务器发送信息，而对客户端不需要发送新信息内容的情况下使用
        self::Partial_Content => '参数错误是对资源某一部分的请求',//该状态码表示客户端进行了范围请求，而服务器成功执行了这部分的GET请求。响应报文中包含由Content-Range指定范围的实体内容

        self::Moved_Permanently => '资源的uri已更新',//永久性重定向，请求的资源已经被分配了新的URI，以后应使用资源现在所指的URI
        self::Found => '资源的URI已临时定位到其他位置了',//和301相似，但302代表的资源不是永久性移动，只是临时性性质的。换句话说，已移动的资源对应的URI将来还有可能发生改变。
        self::See_Other => '资源的URI已更新，你是否能临时按新的URI访问',//该状态码表示由于请求对应的资源存在着另一个URL，应使用GET方法定向获取请求的资源。303状态码和302状态码有着相同的功能，但303状态码明确表示客户端应当采用GET方法获取资源，这点与302状态码有区别。
        self::Not_Modified => '资源已找到，但未符合条件请求。',//该状态码表示客户端发送附带条件的请求时（采用GET方法的请求报文中包含If-Match，If-Modified-Since，If-None-Match，If-Range，If-Unmodified-Since中任一首部）服务端允许请求访问资源，但因发生请求未满足条件的情况后，直接返回304.。
        self::Temporary_Redirect => '临时重定向',//与302有相同的含义。

        self::Bad_Request => '参数错误',//错误请求 — 请求中有语法问题，或不能满足请求。
        self::Unauthorized => '未授权或Token验证失败',//该状态码表示发送的请求需要有通过HTTP认证（BASIC认证，DIGEST认证）的认证信息。
        self::Forbidden => '无权限访问',//不允许访问那个资源。该状态码表明对请求资源的访问被服务器拒绝了。（权限，未授权IP等）
        self::Not_Found => '资源不存在',//服务器上没有请求的资源。路径错误等。

        self::Internal_Server_Error => '操作失败,服务器异常',//貌似内部资源出故障了。该状态码表明服务器端在执行请求时发生了错误。也有可能是web应用存在bug或某些临时故障。
        self::Service_Unavailable => '服务器负载',//抱歉，我现在正在忙着。该状态码表明服务器暂时处于超负载或正在停机维护，现在无法处理请求。
    );

}
